The NVMe (non-volatile memory express) protocol is a high-speed interface protocol used in a storage system. Compared with the SCSI protocol, the NVMe protocol provides a higher read/write speed and a lower delay, and therefore, attracts more attention of the industry and becomes increasingly popular.
With development of information technologies, an object storage technology is frequently used. A common object storage technology is key value (KV) storage. In the prior art, because an NVMe device supports only a block interface, if a host needs to store KV data in an NVMe storage device, steps are as follows: The host needs to convert a KV command (generally, including a key, a value, and metadata) into a data block (for example, the host splits one KV command into at least two data blocks, or combines KV commands into one data block). The host allocates an LBA address to the data block. The host sends the data block to the NVMe storage device. After receiving the data block, the NVMe storage device successively stores data blocks according to the allocated LBA address.
However, in the foregoing steps, converting the KV data into the data block and allocating the LBA address to the data block consume a large quantity of computing resources of the host. Consequently, performance of the storage system deteriorates, and running efficiency of the host and a storage controller is affected.